/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.clinicariobamba.Controladores;


import com.clinicariobamba.ReglasNegocio.Clases.Paciente;
import com.clinicariobamba.ReglasNegocio.Funciones.FuncionesPaciente;
import java.io.Serializable;
import java.util.ArrayList;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.context.DefaultRequestContext;

/**
 *
 * @author Gis
 */
@ManagedBean
@ViewScoped
public class ControladorPaciente implements Serializable {

    private Paciente paciente;
    private Paciente pacienteSel;
    private ArrayList<Paciente> LstPacientes;
    private ArrayList<Paciente> LstPacientesCon;
    
    
  
    public ControladorPaciente(Paciente paciente, ArrayList<Paciente> LstPacientes) {
        this.paciente = paciente;
        cargarPacientes();
    }

   
    public ArrayList<Paciente> getLstPacientesCon() {
        return FuncionesPaciente.obtenerPacienteConectado();
    }

    public void setLstPacientesCon(ArrayList<Paciente> LstPacientesCon) {
        this.LstPacientesCon = LstPacientesCon;
    }

    public ControladorPaciente() {
        this.paciente = new Paciente();
        this.pacienteSel = new Paciente();
        cargarPacientes();
    
 
    }

    public Paciente getPaciente() {
        return paciente;
    }

    public void setPaciente(Paciente paciente) {
        this.paciente = paciente;
    }

    public Paciente getPacienteSel() {
        return pacienteSel;
    }

    public void setPacienteSel(Paciente pacienteSel) {
        this.pacienteSel = pacienteSel;
    }        

    public ArrayList<Paciente> getLstPacientes() {
        return LstPacientes;
    }

    
    public void setLstPacientes(ArrayList<Paciente> LstPacientes) {
        this.LstPacientes = LstPacientes;
    }

    public Paciente ObtenerPaciente(int idPaciente) {
        return FuncionesPaciente.obtenerPaciente(idPaciente);
    }

    private void cargarPacientes() {
        try {
            LstPacientes = FuncionesPaciente.obtenerPacientes();
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    public void insertarPaciente() {
        try {
            if (FuncionesPaciente.insertar(paciente)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Insertados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                cargarPacientes();
                DefaultRequestContext.getCurrentInstance().execute("wdlgNuevoPaciente.hide()");
                paciente = new Paciente();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error al eliminar");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

  
    public void editarPaciente() {
        try {
            if (FuncionesPaciente.modificar(pacienteSel)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO,
                        "Información", "Datos Actualizados");
                FacesContext.getCurrentInstance().addMessage(null, message);
                cargarPacientes();
                DefaultRequestContext.getCurrentInstance().execute("wdlgEditarPaciente.hide()");
                pacienteSel = new Paciente();
            } else {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "Alerta!!", "Error en la actualizacion");
                FacesContext.getCurrentInstance().addMessage(null, message);
            }
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Alerta!!", e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

    
      
}
